package com.hq;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.query.SQLQuery;

@SpringBootTest
class MybatisPlusApplicationTests {

    @Test
    void contextLoads() {
    }

    /**
     * sql代码生成
     */
    @Test
    public void newsql() {
        String outputDir = "K:/qqtv/spring/mybatis/tvvideo/src/main/java";

        FastAutoGenerator.create("jdbc:mysql://192.168.2.251:3306/video?characterEncoding=utf-8&useSSL=false", "root", "1813033378")
                .globalConfig(builder -> {
                    builder.author("来一炮") // 设置作者
                            .outputDir(outputDir); // 输出目录
                })

                .packageConfig(builder -> {
                    builder.parent("org.hq") // 设置父包名
                            .entity("pojo") // 设置实体类包名
                            .mapper("mapper") // 设置 Mapper 接口包名
                            .service("service.sql.iservice") // 设置 Service 接口包名
                            .serviceImpl("service.sql.impl") // 设置 Service 实现类包名
                            // 设置 Mapper XML 文件包名
                            .xml("mapperxml");
                })
                .strategyConfig(builder -> {
                    builder.addInclude("web_name",
                                    "host_web",
                                    "groups_video",
                                    "video_message",
                                    "user") // 设置需要生成的表名
                            .entityBuilder()
                            .enableTableFieldAnnotation() // 启用字段注解
                            .controllerBuilder()

                            .mapperBuilder(); // 启用 REST 风格
                })


                .templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 模板引擎
                .execute(); // 执行生成
    }
}
